
VCESL全称为垂直腔面发射激光器,是一种在与半导体外延片垂直方向上形成光学谐振腔、发出的激光束与衬底表面垂直的半导体激光器结构。自2017年苹果公司的iPhoneX采用VCSEL作为3D感应技术并用于ProximitySensor和FaceID模块后,彻底掀起了VCESL热潮。之后研究人员发现VCESL在激光雷达LiDAR和气体检测等方面会有很大的应用市场,预期在2023年后将扩大10倍以上。同时,随着光通讯数据中心的建设,VCESL激光器作为980nm等短波长激光器的使用量也会激增。从下表中可以看出,VCSEL相比于LED与EEL,在精确度、小型化、低功耗、可靠性等各个方面都占优。

不仅如此,在集成度方面,由于VCSEL是从垂直衬底的面发射激光,因此很容易通过平面工艺实现大规模发光阵列,并且VCSEL能够轻松实现二维阵列,优于EEL的一维阵列;在工艺方面,VCSEL工艺与LED工艺兼容,有利于大规模制造、降低成本。如下图所示,VCSEL阵列方式往往是根据不同的设计要求而改变的,设计人员需要在理论层面对VCSEL建立模型进行模拟测试及优化。

当设计人员通过仿真模拟设计好VCSEL各项参数后,将面对建立VCSEL大阵列工艺版图的“难题”。面对这类“难题”,国产EDA软件PhotoCAD正是“一把好手”!
现如今,随着VCSEL技术的蓬勃发展,VCSEL器件的形状结构不尽相同,下面将着重介绍如何通过PhotoCAD“玩转”多元化阵列版图设计,通过六个设计方案,您将感受到PhotoCAD的“灵活”与“强大”。
一、单元创建
如下图所示,我们设定好radius_cicle、width_ring、distance、radius_ring等几个关键参数,然后通过PhotoCAD的 “易上手、模块化” 操作,建立单个单元的.py文件,以供后续设计调用。

先通过调用fnpcell模块中的EllipticalRing函数,指定好圆环外径和内径几何尺寸参数,将该图形结构放置于事先设定的M2_DRW层中(可通过指定不同layer以满足不同工艺层条件)。

对于周围绿色圆形结构阵列,我们可以利用强大灵活的Python3语法来实现。这里使用最简单的for循环,调用实例化后的CIRCLE,通过.rotated()函数控制图形的角度,轻松完成整个VCSEL单元的创建。

二、Rectangular标准阵列

对于一个标准化的Rectangular阵列,我们只需确认好四个关键参数,分别为行数rows、列数cols、单元列间距period_x及单元行间距period_y;再通过双重for循环向“器件容器”instSet中加入不同中心位置的VCSEL单元即可实现。

三、Rectangular随机生成阵列-1

观察上列版图,奇数行与偶数行之间整体有一个固定的位置偏移,我们在双重for循环基础上,通过n=i%2判断当下循环的行数是奇数或是偶数,再根据if-else语句设置条件,根据奇偶数行设置第一列单元起始位置(产生偏移效果)。版图中单元与单元之间通过合适的period及distance等参数的配合,使得单元间的一些绿色圆形相重合,从而实现特定需求的阵列摆放。

四、Rectangular随机生成阵列-2

与标准阵列中不同的是,在每个网格位置处VCSEL单元是随机出现的,好似一张黑白色“二维码”结构,具体实现方式当然也是“二值化”问题,我们设计在每个网格点处由“0或1”两个值来判定此处是否存在VCSEL单元。

我们先用第一行代码生成一个二维数组,其中的元素均为随机生成的“0或1”,然后在双重for循环遍历的基础上增加一个if语句用于判别网格点处的元素值是否为“1”,只有当值为“1”的时候才会添加一个单元结构到instSet中,这样就实现了随机生成的效果。
五、Rectangular随机浮动阵列

如上图示,每个单元的中心位置与标准阵列相比,多了随机浮动的特点,对于这种效果的实现,仅需在控制位置参数的.translated()函数中加一个随机浮动的参数值即可。

六、Rectangular随机浮动与随机生成阵列(*进阶)

与前文相同,首先利用random.randint函数随机生成0和1以形成rows行cols列的网格布局,然后通过双重for循环以生成固定间距的单元格阵列。在遍历网格时,当网格中数字为1就添加一个device,为0则不添加。接着,为每一个device的x、y坐标产生一个随机偏移,通过(random.random()-0.5)*5限制波动范围,最后的版图就产生了随机生成和随机浮动的效果。

总之,国产EDA软件PhotoCAD是一款强大的版图工具,设计人员手握“趁手利器”,在Python3语言的基础上,搭配多种多样的“武功秘籍”(第三方库),一切难题均可迎刃而解!不信?你试试?